home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
game
/
actio
/
BatNav.lha
/
BatNav
/
BatNav.asc
< prev
next >
Wrap
Text File
|
1997-12-07
|
9KB
|
479 lines
Rem -------------------------------------------------------------
Rem
Rem BATAILLE-NAVALE V1.10
Rem
Rem A Bonney 27-08-92
Rem
Rem Révisé les 06 & 07-12-97
Rem
Rem ----------------------- PRG PRINCIPAL -----------------------
Rem
Set Buffer 8
Load Iff Dir$+"Data/Tb_Présentation",0
Hide On
Led Off
Load Dir$+"Data/En_Mer.abk"
Music 1
Mvolume 32
Repeat
Until Mouse Key<>0
Screen Close 0
DEBUT:
Rem
Randomize Timer
Gosub INITIALISATION
Gosub AFFICHAGE
Rem
FUITE:
Rem
Screen 0
Shift Off
Screen 4
Cls
Hide On
Locate ,1
Centre Border$(" Le navire ennemi a réussi à vous distancer... ",1)
Goto FIN
Rem
BATAILLEGAGNE:
Rem
Screen 0
Shift Off
Screen 4
Cls
Hide On
Locate ,1
Centre Border$(" Félicitations ! Vous avez coulé le bateau ennemi... ",1)
JEGAGNE=1
Goto FIN
Rem
EPAVE:
Rem
Shift Off
Screen 4
Cls
Hide On
Locate ,1
Centre Border$(" Les canots à la mer ! le navire est ingouvernable... ",1)
Goto FIN
Rem
MORT:
Rem
Shift Off
Screen 4
Cls
Hide On
Locate ,1
Centre Border$(" Il n'y a plus un homme vivant à bord ! Reste le chat... ",1)
Goto FIN
Rem
COULE:
Rem
Shift Off
Screen 4
Cls
Hide On
Locate ,1
Centre Border$(" Touché sous la ligne de flotaison ! Au canots... ",1)
Goto FIN
Rem
ECHOUAGE:
Rem
Shift Off
Screen 4
Cls
Hide On
Locate ,1
Centre Border$(" Votre adversaire s'est échoué sur une ile... ",1)
JEGAGNE=1
Goto FIN
Rem
CHOC:
Rem
Shift Off
Screen 4
Cls
Hide On
Locate ,1
Centre Border$(" Vous etes entré en collision avec l'autre vaisseau... ",1)
Goto FIN
Rem
NAUFRAGE:
Rem
Shift Off
Screen 4
Cls
Hide On
Locate ,1
Centre Border$(" Sauve qui peut ! Le navire s'est échoué sur une ile... ",1)
Rem
FIN:
Locate ,5
Centre Border$(" LA PARTIE EST TERMINEE ",1)
Music Off
Wait 50
If JEGAGNE=1
Sam Play 1
Else
Sam Play 2
End If
Wait 150
Screen 0
Fade 5
Wait 100
Reset Zone
Td Quit
Screen Close 0
Screen Close 1
Screen Close 2
Screen Close 3
Screen Close 4
Erase 3
Erase 5
Rem
End
Rem
Rem -------------------- INITIALISATION -------------------------
Rem
INITIALISATION:
Rem
Load Dir$+"Data/BatNavSamples.abk"
Screen Open 0,320,200,16,Lowres
Screen Hide 0
Td Clear All
Td Dir Dir$+"Data"
Td Load "bateau"
Td Load "ile1"
Td Load "boulet"
Td Load "explosion"
Double Buffer
Autoback 0
Load Iff Dir$+"Data/Ciel",1
Screen Hide 1
Load Iff Dir$+"Data/1°Plan",2
Screen Hide 2
Load Iff Dir$+"Data/Mer",3
Screen Hide 3
Screen Open 4,640,56,4,Hires
Screen Hide 4
Load Iff Dir$+"Data/Tb_Commandes",4
Screen Display 4,128,252,640,56
Screen 0
Get Palette(2)
Flash Off
Screen To Front 0
Td Screen Height 200
Limit Mouse 128,252 To 447,307
Reserve Zone 9
For Q=1 To 9
Read XZ,YZ
Set Zone Q,XZ,YZ To XZ+14,YZ+14
Next Q
Data 111,4,195,4,111,36,195,36,279,4,299,20,279,36,259,20,279,20
Td Move 0,0,45,0
Td Object 1,"boulet",0,45,0,0,0,0
Td Set Zone 0,0,0,0,0,200
HZ=Rnd(359)
Td Object 4,"bateau",3000*Sin(HZ),0,3000*Cos(HZ),0,HZ*182+32760,0
Td Set Zone 4,0,0,0,4,100
For Q=1 To 5
HZ=Rnd(359)
Td Object Q+6,"ile1",5000*Q*Sin(HZ),0,5000*Q*Cos(HZ),0,HZ*182,0
Td Set Zone Q+6,0,0,0,Q+6,2000
Next Q
VB1=5
VIE2=100
HOMMES=100
VOILES=100
COQUE=100
MXBAD=100
Shift Up 30,4,6,1
VUE=1
Screen Show 0
Screen Show 4
Show On
Return
Rem
Rem ---------------------- AFFICHAGE -----------------------------
Rem
AFFICHAGE:
Rem
Do
Inc BADABOUM
If BADABOUM>MXBAD
BADABOUM=MXBAD
End If
If BAOUM1>0
Td Kill 3
If BAOUM1=1
Sam Play %1100,4
Else
Sam Play %1100,3
If DEGATS2=1
VIE2=VIE2-(1+Rnd(9))
If VIE2<1
VIE2=0
End If
Screen 4
Hslider 219,23 To 419,31,100,VIE2,2
Screen 0
DEGATS2=0
End If
End If
BAOUM1=0
End If
If BAOUM2>0
Td Kill 6
If BAOUM2=1
Sam Play %1100,3
Else
BADABOUM=0
Sam Play %1100,4
If DEGATS1=1
HOMMES=HOMMES-(5+Rnd(45))
If HOMMES<1
HOMMES=0
End If
VOILES=VOILES-(5+Rnd(45))
If VOILES<1
VOILES=0
End If
COQUE=COQUE-(5+Rnd(45))
If COQUE<1
COQUE=0
End If
Gosub AFFIDEG
DEGATS1=0
End If
End If
BAOUM2=0
End If
ANGB1=Td Bearing B(4,0)
DR=Sgn(ANGB1)*182
If DR=0 Then DR=-1
If Td Bearing R(4,0)<5000
Td Angle Rel 4,0,DR,0
End If
CAP2=Td Attitude B(4)-ANGB1
If CAP2>65520
CAP2=CAP2-65520
End If
If CAP2<0
CAP2=CAP2+65520
End If
If Td Bearing R(4,0)<5000 and TIR2=0
If CAP2>12190 and CAP2<20570 and BADABOUM=MXBAD
TIR2=1
End If
If CAP2>44950 and CAP2<53330 and BADABOUM=MXBAD
TIR2=1
End If
If TIR2=1
BAOUM2=1
BLX2=Td Position X(4)
BLZ2=Td Position Z(4)
Td Object 6,"explosion",BLX2,20,BLZ2,0,0,0
Td Face 6,0
Td Object 5,"boulet",BLX2,20,BLZ2,0,0,0
Td Face 5,0
Td Set Zone 5,0,0,0,5,10
End If
End If
VMAX=Int((HOMMES+VOILES+COQUE)/30)
If VB1>VMAX
VB1=VMAX
Gosub AFFIVB1
End If
VB2=Int(VIE2/20)
Rem -------------------------------------------------------
If Mouse Key
CASE=Hzone(X Mouse,Y Mouse-200)
If CASE=1
If VB1>0
Td Angle Rel 0,0,-182,0
Td Angle Rel 1,0,-182,0
Dec CAP
If CAP<0
CAP=CAP+360
End If
Gosub AFFICAP
End If
End If
If CASE=2
If VB1>0
Td Angle Rel 0,0,182,0
Td Angle Rel 1,0,182,0
Inc CAP
If CAP>359
CAP=CAP-360
End If
Gosub AFFICAP
End If
End If
If CASE=3
Dec VB1
If VB1<0
VB1=0
End If
Gosub AFFIVB1
End If
If CASE=4
Inc VB1
If VB1>VMAX
VB1=VMAX
End If
Gosub AFFIVB1
End If
If CASE=5
VUE=1
REGARD=0
End If
If CASE=6
VUE=2
REGARD=16380
End If
If CASE=7
VUE=3
REGARD=32760
End If
If CASE=8
VUE=4
REGARD=49140
End If
If CASE=9 and TIR1=0
If VUE=2
ANGTR1=CAP*182+16380
TIR1=1
End If
If VUE=4
ANGTR1=CAP*182-16380
TIR1=1
End If
If TIR1=1
BLX1=Td Position X(0)
BLZ1=Td Position Z(0)
BAOUM1=1
Td Object 3,"explosion",BLX1,20,BLZ1,0,ANGTR1,0
Td Forward 3,100
Td Object 2,"boulet",BLX1,20,BLZ1,0,ANGTR1,0
Td Set Zone 2,0,0,0,2,10
End If
End If
End If
If VIE2=0 Then Goto BATAILLEGAGNE
If TIR1=1
If BUT1>6
BAOUM1=2
End If
If BUT1=4
BAOUM1=2
DEGATS2=1
End If
If Td Range(2,0)<5000
Td Forward 2,200
Else
BAOUM1=2
End If
If BAOUM1=2
TIR1=0
BLX1=Td Position X(2)
BLZ1=Td Position Z(2)
Td Object 3,"explosion",BLX1,20,BLZ1,0,0,0
Td Face 3,0
Td Kill 2
End If
End If
Rem -------------------------------------------------------
If TIR2=1
If BUT2=0
BAOUM2=2
DEGATS1=1
End If
If BUT2>6
BAOUM2=2
End If
If Td Range(5,4)<5000
Td Forward 5,200
Else
BAOUM2=2
End If
If BAOUM2=2
TIR2=0
BLX2=Td Position X(5)
BLZ2=Td Position Z(5)
Td Object 6,"explosion",BLX2,20,BLZ2,0,0,0
Td Face 6,0
Td Forward 6,-200
Td Kill 5
End If
End If
Rem -------------------------------------------------------
Td Forward 1,VB1
Td Move 0,Td Position X(1),45,Td Position Z(1)
Td Angle 0,0,Td Attitude B(1)+REGARD,0
Td Forward 4,VB2
ANGVUE=CAP
While ANGVUE>90
ANGVUE=ANGVUE-90
Wend
Rem -------------------------------------------------------
Td Cls
If VUE=1 Then Td Background 2,0,0,320,99 To 0,100
If VUE=4 Then Td Background 2,0,200,320,55 To 0,144
If VUE=3 Then Td Background 2,0,100,320,99 To 0,100
If VUE=2 Then Td Background 2,0,256,320,55 To 0,144
Td Redraw
Td Background 1,ANGVUE*3,0,320,100 To 0,0
Td Background 3,0,0,320,100 To 0,100
Screen Swap
Wait Vbl
Rem -------------------------------------------------------
If COQUE=0 Then Goto COULE
If VMAX=0 or VOILES=0 Then Goto EPAVE
If HOMMES=0 Then Goto MORT
If Td Collide(0)>6 Then Goto NAUFRAGE
If Td Collide(0)=4 Then Goto CHOC
If Td Collide(4)>6 Then Goto ECHOUAGE
BUT1=-1
If TIR1=1
BUT1=Td Collide(2)
End If
BUT2=-1
If TIR2=1
BUT2=Td Collide(5)
End If
If Td Bearing R(4,1)>6000 and VB2>VMAX Then Goto FUITE
Loop
Return
Rem
Rem -------------------------------------------------------
Rem
AFFICAP:
Rem
Screen 4
Locate 43,1 : Print " "
Locate 42,1 : Print CAP
Screen 0
Return
Rem
Rem -------------------------------------------------------
Rem
AFFIVB1:
Rem
Screen 4
Locate 44,5 : Print " "
Locate 43,5 : Print VB1
Screen 0
Return
Rem
Rem -------------------------------------------------------
Rem
AFFIDEG:
Rem
Screen 4
Hslider 82,6 To 182,15,100,HOMMES,1
Hslider 82,22 To 182,31,100,VOILES,1
Hslider 82,38 To 182,47,100,COQUE,1
Screen 0
Return